drivers/enc28j60: disable flow control #19845
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contribution description
This PR disables flow control in the ENC28J60 driver init function.
Setting FCEN1 in the EFLOCON register causes the ENC28J60 to periodically send pause frames. It should only be set when the receiver is running out of buffer space [1].
(Also, the FULDPXS bit in EFLOCON is read-only.)
[1] https://ww1.microchip.com/downloads/en/devicedoc/39662c.pdf
Testing procedure
Launch Wireshark / tshark on an interface connected to an ENC28J60 controlled by RIOT. Without this PR you should see a pause frame being sent about every 100 ms (~10x per second):
With this PR no pause frames are sent.
Issues/PRs references
None